package com.jch.dm.chapter_3_template_method;

/**
 * @author: jch
 * 模板模式 示例 子类
 **/
public class StringDisplay extends AbstractDisplay {
    /**
     * 字符串
     */
    private String string;
    /**
     * 以字节为单位计算字符串长度
     */
    private int width;

    public StringDisplay(String string) {
        this.string = string;
        this.width = string.getBytes().length;
    }

    /**
     * 开启
     */
    @Override
    public void open() {
        printLine();
    }

    /**
     * 打印
     */
    @Override
    public void print() {
        System.out.println("|" + string + "|");
    }

    /**
     * 关闭
     */
    @Override
    public void close() {
        printLine();
    }

    private void printLine() {
        System.out.print("+");
        for (int i = 0; i < width; i++) {
            System.out.print("-");
        }
        System.out.println("+");
    }
}
